home *** CD-ROM | disk | FTP | other *** search
/ MacHack 2000 / MacHack 2000.toast / pc / The Hacks / Genie / Projects / Pedestal / Source / Includes / Ped1ObjectDeity.hh < prev    next >
Encoding:
Text File  |  2000-06-24  |  1.1 KB  |  59 lines

  1. /*    ==================
  2.  *    Ped1ObjectDeity.hh
  3.  *    ==================
  4.  *    
  5.  *    Implemented by Ped1ObjectDeity.cc
  6.  */
  7.  
  8. #ifndef PED1OBJECTDEITY_HH
  9. #define PED1OBJECTDEITY_HH
  10.  
  11. #include "PedestalDebugging.h"
  12.  
  13. #include <Types.h>
  14.  
  15. class PedObject;
  16.  
  17. class PedWindow;
  18. class PedAgent;
  19. class PedTask;
  20.  
  21. typedef OSType ObjCode;
  22. //typedef PedObject * (*PedFabricator)();
  23.  
  24. /*
  25. template <class T>
  26. class PedClass {
  27. public:
  28.     T *MakeInstance() = 0;
  29. };
  30. */
  31.  
  32. class PedClassAgent {
  33. public:
  34.     PedClassAgent(PedTask *inPrimaryTask) : mPrimaryTask(inPrimaryTask) {}
  35.     virtual PedAgent *MakeAgent();
  36. protected:
  37.     PedTask *mPrimaryTask;
  38. };
  39.  
  40. class Ped1ObjectDeity {
  41. public:
  42.     Ped1ObjectDeity() : mAgentClass(NULL) {}
  43.     virtual PedAgent *CreateWindowAgent();
  44.     virtual PedWindow *CreateWindow();
  45.     virtual PedWindow *CreateTEWindow();
  46.     
  47.     //virtual void RegisterFabricator(ObjCode inCode, PedFabricator inFab);
  48.     //virtual void RegisterClass(ObjCode inCode, PedClass<PedObject> *inClass);
  49.     virtual void RegisterAgentClass(PedClassAgent *inClass);
  50.     
  51. protected:
  52.     //PedFabricator mFabAgent;
  53.     PedClassAgent *mAgentClass;
  54. };
  55.  
  56. extern Ped1ObjectDeity *gOD;
  57.  
  58. #endif
  59.